package com.irdstudio.efp.console.service.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.irdstudio.efp.console.service.domain.RiskClassfyList;
import com.irdstudio.efp.console.service.vo.RiskClassfyListVO;
/**
 * <p>DAO interface:风险分类配置清单表				<p>
 * @author fuzm
 * @date 2018-05-08
 */
public interface RiskClassfyListDao {
	
	public int insertRiskClassfyList(RiskClassfyList riskClassfyList);
	
	public int deleteByPk(RiskClassfyList riskClassfyList);
	
	public int updateByPk(RiskClassfyList riskClassfyList);
	
	public RiskClassfyList queryByPk(RiskClassfyList riskClassfyList);
	/**
	 * 查询风险配置 下的所有清单,并且分页
	 * @param riskClassfyList
	 * @return
	 */
	public List<RiskClassfyList> queryListAllByPage(RiskClassfyListVO riskClassfyList);
	/**
	 * 根据风险分类配置,删除配置清单
	 * @param riskClassfyList
	 * @return
	 */
	public int deleteByRiskCfgNo(RiskClassfyList riskClassfyList);
	/**
	 * 查询同一逾期最小天数、逾期最大天数、担保方式、是否涉农、客户评级各维度相组合的一条配置信息是否存在
	 * @param riskClassfyList
	 * @return
	 */
	public int queryDataIsHave(RiskClassfyListVO riskClassfyList);
	/**
	 * 查询 担保方式、是否涉农、客户评级 下的配置清单(当担保方式、是否涉农、客户评级各纬度一致时,最小逾期数和最大逾期数不能存在交叉) 
	 * @param riskClassfyList
	 * @return
	 */
	public List<RiskClassfyList> queryBetweenLists(RiskClassfyListVO riskClassfyList);
	/**
	 * 查询风险配置 下的所有清单,不分页
	 * @param riskClassfyList
	 * @return
	 */
	public List<RiskClassfyList> queryListAllByCfgNo(RiskClassfyListVO riskClassfyList);
	/**
	 * 根据不同的条件查询风险分类配置清单
	 * @param overdueDay 逾期天数
	 * @param guarWay 担保方式
	 * @param wheAgr 是否涉农
	 * @param custLevel 客户评级
	 * @return
	 */
	public List<RiskClassfyList> queryListsByCondition(@Param("overdueDay")Integer overdueDay, 
			@Param("guarWay")String guarWay,  @Param("wheAgr")String wheAgr, 
			@Param("custLevel")String custLevel);
}
